[INFO] cloning repository https://github.com/subhamskm52/dia
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/subhamskm52/dia" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsubhamskm52%2Fdia", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsubhamskm52%2Fdia'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 1f1f654ba1cb9fb250ed572e67999014d9484cb5
[INFO] testing subhamskm52/dia against master#1f7f8ea0721a3b1eb73e6c6d25cccb371434b320 for pr-154065-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsubhamskm52%2Fdia" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/subhamskm52/dia
[INFO] finished tweaking git repo https://github.com/subhamskm52/dia
[INFO] tweaked toml for git repo https://github.com/subhamskm52/dia written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/subhamskm52/dia on toolchain 1f7f8ea0721a3b1eb73e6c6d25cccb371434b320
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/subhamskm52/dia already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 4bc762735debb7fa2c694ab86dd776ce7833db1c1f7414e83cae5e7cb2f7035f
[INFO] running `Command { std: "docker" "start" "-a" "4bc762735debb7fa2c694ab86dd776ce7833db1c1f7414e83cae5e7cb2f7035f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "4bc762735debb7fa2c694ab86dd776ce7833db1c1f7414e83cae5e7cb2f7035f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4bc762735debb7fa2c694ab86dd776ce7833db1c1f7414e83cae5e7cb2f7035f", kill_on_drop: false }`
[INFO] [stdout] 4bc762735debb7fa2c694ab86dd776ce7833db1c1f7414e83cae5e7cb2f7035f
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 74f6548f2263e7d0940e4e5ed5d3ccac3cec61eb3b9eed15afc4402e971af53e
[INFO] running `Command { std: "docker" "start" "-a" "74f6548f2263e7d0940e4e5ed5d3ccac3cec61eb3b9eed15afc4402e971af53e", kill_on_drop: false }`
[INFO] [stderr]    Compiling dia v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::iter::Scan`
[INFO] [stdout]  --> src/scanner/mod.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::iter::Scan;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/scanner/mod.rs:59:19
[INFO] [stdout]    |
[INFO] [stdout] 59 |                 if(self.peek() == '/'){
[INFO] [stdout]    |                   ^                  ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 59 -                 if(self.peek() == '/'){
[INFO] [stdout] 59 +                 if self.peek() == '/' {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/scanner/mod.rs:123:11
[INFO] [stdout]     |
[INFO] [stdout] 123 |         if(self.peek() != '"' && !self.is_eof()){
[INFO] [stdout]     |           ^                                    ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 123 -         if(self.peek() != '"' && !self.is_eof()){
[INFO] [stdout] 123 +         if self.peek() != '"' && !self.is_eof() {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/scanner/mod.rs:124:15
[INFO] [stdout]     |
[INFO] [stdout] 124 |             if(self.peek() == '\n'){self.line += 1;}
[INFO] [stdout]     |               ^                   ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 124 -             if(self.peek() == '\n'){self.line += 1;}
[INFO] [stdout] 124 +             if self.peek() == '\n' {self.line += 1;}
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/scanner/mod.rs:127:11
[INFO] [stdout]     |
[INFO] [stdout] 127 |         if(self.is_eof()){
[INFO] [stdout]     |           ^             ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 127 -         if(self.is_eof()){
[INFO] [stdout] 127 +         if self.is_eof() {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `while` condition
[INFO] [stdout]    --> src/scanner/mod.rs:134:14
[INFO] [stdout]     |
[INFO] [stdout] 134 |         while(self.peek().is_ascii_digit()){
[INFO] [stdout]     |              ^                            ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 134 -         while(self.peek().is_ascii_digit()){
[INFO] [stdout] 134 +         while self.peek().is_ascii_digit() {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/scanner/mod.rs:137:11
[INFO] [stdout]     |
[INFO] [stdout] 137 |         if(self.peek() == '.' && self.peek_next().is_ascii_digit()){
[INFO] [stdout]     |           ^                                                       ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 137 -         if(self.peek() == '.' && self.peek_next().is_ascii_digit()){
[INFO] [stdout] 137 +         if self.peek() == '.' && self.peek_next().is_ascii_digit() {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `while` condition
[INFO] [stdout]    --> src/scanner/mod.rs:139:18
[INFO] [stdout]     |
[INFO] [stdout] 139 |             while(self.peek().is_ascii_digit()){
[INFO] [stdout]     |                  ^                            ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 139 -             while(self.peek().is_ascii_digit()){
[INFO] [stdout] 139 +             while self.peek().is_ascii_digit() {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/parser/expression_parser.rs:12:11
[INFO] [stdout]    |
[INFO] [stdout] 12 |         if(self.match_token(&[TokenType::Equal])){
[INFO] [stdout]    |           ^                                     ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 12 -         if(self.match_token(&[TokenType::Equal])){
[INFO] [stdout] 12 +         if self.match_token(&[TokenType::Equal]) {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/parser/mod.rs:22:11
[INFO] [stdout]    |
[INFO] [stdout] 22 |         if(!self.is_eof()) {
[INFO] [stdout]    |           ^              ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 22 -         if(!self.is_eof()) {
[INFO] [stdout] 22 +         if !self.is_eof()  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/parser/mod.rs:46:15
[INFO] [stdout]    |
[INFO] [stdout] 46 |             if(self.check(t.clone())){
[INFO] [stdout]    |               ^                     ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 46 -             if(self.check(t.clone())){
[INFO] [stdout] 46 +             if self.check(t.clone()) {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::parser::expr::LiteralValue`
[INFO] [stdout]  --> src/interpreter/block_interpreter.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::parser::expr::LiteralValue;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cmp::PartialEq`
[INFO] [stdout]  --> src/interpreter/stmt_interpreter.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::cmp::PartialEq;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::hint::black_box`
[INFO] [stdout]  --> src/interpreter/stmt_interpreter.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::hint::black_box;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `LiteralValue`
[INFO] [stdout]  --> src/interpreter/stmt_interpreter.rs:4:33
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::parser::expr::{Expr, LiteralValue};
[INFO] [stdout]   |                                 ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/interpreter/stmt_interpreter.rs:12:11
[INFO] [stdout]    |
[INFO] [stdout] 12 |         if(self.is_truthy(&cond)){
[INFO] [stdout]    |           ^                     ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 12 -         if(self.is_truthy(&cond)){
[INFO] [stdout] 12 +         if self.is_truthy(&cond) {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/interpreter/mod.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/interpreter/mod.rs:57:11
[INFO] [stdout]    |
[INFO] [stdout] 57 |         if(self.environment.contains_in_current_scope(&lex)){
[INFO] [stdout]    |           ^                                                ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 57 -         if(self.environment.contains_in_current_scope(&lex)){
[INFO] [stdout] 57 +         if self.environment.contains_in_current_scope(&lex) {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Colon` is never constructed
[INFO] [stdout]  --> src/scanner/token_type.rs:5:62
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub enum TokenType{
[INFO] [stdout]   |          --------- variant in this enum
[INFO] [stdout] 4 |     // Single-character tokens
[INFO] [stdout] 5 |     LeftParen, RightParen, LeftBrace, RightBrace, Semicolon, Colon,
[INFO] [stdout]   |                                                              ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `TokenType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_start` and `get_end` are never used
[INFO] [stdout]   --> src/scanner/token.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl Token {
[INFO] [stdout]    | ---------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 20 |     pub fn get_start(&self) -> usize { self.start }
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 21 |     pub fn get_end(&self) -> usize { self.end }
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `peek_next` is never used
[INFO] [stdout]   --> src/parser/mod.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl Parser {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn peek_next(&self) -> &Token {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/parser/expr.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 20 |     String(String),    // String literals, e.g., "hello"
[INFO] [stdout]    |     ------ ^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `LiteralValue` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 20 -     String(String),    // String literals, e.g., "hello"
[INFO] [stdout] 20 +     String(()),    // String literals, e.g., "hello"
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/parser/stmt.rs:43:11
[INFO] [stdout]    |
[INFO] [stdout] 43 |     Print(Expr),
[INFO] [stdout]    |     ----- ^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Stmt` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 43 -     Print(Expr),
[INFO] [stdout] 43 +     Print(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `condition` and `body` are never read
[INFO] [stdout]   --> src/parser/stmt.rs:69:9
[INFO] [stdout]    |
[INFO] [stdout] 68 |     While {
[INFO] [stdout]    |     ----- fields in this variant
[INFO] [stdout] 69 |         condition: Expr,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 70 |         body: Box<Stmt>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Stmt` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `initializer`, `condition`, `increment`, and `body` are never read
[INFO] [stdout]   --> src/parser/stmt.rs:76:9
[INFO] [stdout]    |
[INFO] [stdout] 75 |     For {
[INFO] [stdout]    |     --- fields in this variant
[INFO] [stdout] 76 |         initializer: Option<Box<Stmt>>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 77 |         condition: Option<Expr>,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 78 |         increment: Option<Expr>,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 79 |         body: Box<Stmt>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Stmt` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name`, `params`, and `body` are never read
[INFO] [stdout]   --> src/parser/stmt.rs:84:9
[INFO] [stdout]    |
[INFO] [stdout] 83 |     Function {
[INFO] [stdout]    |     -------- fields in this variant
[INFO] [stdout] 84 |         name: Token,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 85 |         params: Vec<Token>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 86 |         body: Box<Stmt>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Stmt` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `keyword` and `value` are never read
[INFO] [stdout]   --> src/parser/stmt.rs:91:9
[INFO] [stdout]    |
[INFO] [stdout] 90 |     Return {
[INFO] [stdout]    |     ------ fields in this variant
[INFO] [stdout] 91 |         keyword: Token,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 92 |         value: Option<Expr>,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Stmt` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `keyword` is never read
[INFO] [stdout]   --> src/parser/stmt.rs:97:9
[INFO] [stdout]    |
[INFO] [stdout] 96 |     Break {
[INFO] [stdout]    |     ----- field in this variant
[INFO] [stdout] 97 |         keyword: Token,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Stmt` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `keyword` is never read
[INFO] [stdout]    --> src/parser/stmt.rs:102:9
[INFO] [stdout]     |
[INFO] [stdout] 101 |     Continue {
[INFO] [stdout]     |     -------- field in this variant
[INFO] [stdout] 102 |         keyword: Token,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Stmt` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Assignment` is never constructed
[INFO] [stdout]   --> src/parser/stmt.rs:52:5
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub enum Stmt {
[INFO] [stdout]    |          ---- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 52 |     Assignment {
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Stmt` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `variables` is never read
[INFO] [stdout]   --> src/interpreter/mod.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct Interpreter{
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] 13 |     variables: Vec<Token>,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.68s
[INFO] running `Command { std: "docker" "inspect" "74f6548f2263e7d0940e4e5ed5d3ccac3cec61eb3b9eed15afc4402e971af53e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "74f6548f2263e7d0940e4e5ed5d3ccac3cec61eb3b9eed15afc4402e971af53e", kill_on_drop: false }`
[INFO] [stdout] 74f6548f2263e7d0940e4e5ed5d3ccac3cec61eb3b9eed15afc4402e971af53e
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] ff455d910eeb75b663201ab0dc702dc79043446c614ddcdc917995022fbd3668
[INFO] running `Command { std: "docker" "start" "-a" "ff455d910eeb75b663201ab0dc702dc79043446c614ddcdc917995022fbd3668", kill_on_drop: false }`
[INFO] [stderr]    Compiling dia v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::iter::Scan`
[INFO] [stdout]  --> src/scanner/mod.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::iter::Scan;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/scanner/mod.rs:59:19
[INFO] [stdout]    |
[INFO] [stdout] 59 |                 if(self.peek() == '/'){
[INFO] [stdout]    |                   ^                  ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 59 -                 if(self.peek() == '/'){
[INFO] [stdout] 59 +                 if self.peek() == '/' {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/scanner/mod.rs:123:11
[INFO] [stdout]     |
[INFO] [stdout] 123 |         if(self.peek() != '"' && !self.is_eof()){
[INFO] [stdout]     |           ^                                    ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 123 -         if(self.peek() != '"' && !self.is_eof()){
[INFO] [stdout] 123 +         if self.peek() != '"' && !self.is_eof() {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/scanner/mod.rs:124:15
[INFO] [stdout]     |
[INFO] [stdout] 124 |             if(self.peek() == '\n'){self.line += 1;}
[INFO] [stdout]     |               ^                   ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 124 -             if(self.peek() == '\n'){self.line += 1;}
[INFO] [stdout] 124 +             if self.peek() == '\n' {self.line += 1;}
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/scanner/mod.rs:127:11
[INFO] [stdout]     |
[INFO] [stdout] 127 |         if(self.is_eof()){
[INFO] [stdout]     |           ^             ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 127 -         if(self.is_eof()){
[INFO] [stdout] 127 +         if self.is_eof() {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `while` condition
[INFO] [stdout]    --> src/scanner/mod.rs:134:14
[INFO] [stdout]     |
[INFO] [stdout] 134 |         while(self.peek().is_ascii_digit()){
[INFO] [stdout]     |              ^                            ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 134 -         while(self.peek().is_ascii_digit()){
[INFO] [stdout] 134 +         while self.peek().is_ascii_digit() {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/scanner/mod.rs:137:11
[INFO] [stdout]     |
[INFO] [stdout] 137 |         if(self.peek() == '.' && self.peek_next().is_ascii_digit()){
[INFO] [stdout]     |           ^                                                       ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 137 -         if(self.peek() == '.' && self.peek_next().is_ascii_digit()){
[INFO] [stdout] 137 +         if self.peek() == '.' && self.peek_next().is_ascii_digit() {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `while` condition
[INFO] [stdout]    --> src/scanner/mod.rs:139:18
[INFO] [stdout]     |
[INFO] [stdout] 139 |             while(self.peek().is_ascii_digit()){
[INFO] [stdout]     |                  ^                            ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 139 -             while(self.peek().is_ascii_digit()){
[INFO] [stdout] 139 +             while self.peek().is_ascii_digit() {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/parser/expression_parser.rs:12:11
[INFO] [stdout]    |
[INFO] [stdout] 12 |         if(self.match_token(&[TokenType::Equal])){
[INFO] [stdout]    |           ^                                     ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 12 -         if(self.match_token(&[TokenType::Equal])){
[INFO] [stdout] 12 +         if self.match_token(&[TokenType::Equal]) {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/parser/mod.rs:22:11
[INFO] [stdout]    |
[INFO] [stdout] 22 |         if(!self.is_eof()) {
[INFO] [stdout]    |           ^              ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 22 -         if(!self.is_eof()) {
[INFO] [stdout] 22 +         if !self.is_eof()  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/parser/mod.rs:46:15
[INFO] [stdout]    |
[INFO] [stdout] 46 |             if(self.check(t.clone())){
[INFO] [stdout]    |               ^                     ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 46 -             if(self.check(t.clone())){
[INFO] [stdout] 46 +             if self.check(t.clone()) {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::parser::expr::LiteralValue`
[INFO] [stdout]  --> src/interpreter/block_interpreter.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::parser::expr::LiteralValue;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cmp::PartialEq`
[INFO] [stdout]  --> src/interpreter/stmt_interpreter.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::cmp::PartialEq;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::hint::black_box`
[INFO] [stdout]  --> src/interpreter/stmt_interpreter.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::hint::black_box;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `LiteralValue`
[INFO] [stdout]  --> src/interpreter/stmt_interpreter.rs:4:33
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::parser::expr::{Expr, LiteralValue};
[INFO] [stdout]   |                                 ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/interpreter/stmt_interpreter.rs:12:11
[INFO] [stdout]    |
[INFO] [stdout] 12 |         if(self.is_truthy(&cond)){
[INFO] [stdout]    |           ^                     ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 12 -         if(self.is_truthy(&cond)){
[INFO] [stdout] 12 +         if self.is_truthy(&cond) {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/interpreter/mod.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/interpreter/mod.rs:57:11
[INFO] [stdout]    |
[INFO] [stdout] 57 |         if(self.environment.contains_in_current_scope(&lex)){
[INFO] [stdout]    |           ^                                                ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 57 -         if(self.environment.contains_in_current_scope(&lex)){
[INFO] [stdout] 57 +         if self.environment.contains_in_current_scope(&lex) {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Colon` is never constructed
[INFO] [stdout]  --> src/scanner/token_type.rs:5:62
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub enum TokenType{
[INFO] [stdout]   |          --------- variant in this enum
[INFO] [stdout] 4 |     // Single-character tokens
[INFO] [stdout] 5 |     LeftParen, RightParen, LeftBrace, RightBrace, Semicolon, Colon,
[INFO] [stdout]   |                                                              ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `TokenType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_start` and `get_end` are never used
[INFO] [stdout]   --> src/scanner/token.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl Token {
[INFO] [stdout]    | ---------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 20 |     pub fn get_start(&self) -> usize { self.start }
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 21 |     pub fn get_end(&self) -> usize { self.end }
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `peek_next` is never used
[INFO] [stdout]   --> src/parser/mod.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl Parser {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn peek_next(&self) -> &Token {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/parser/expr.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 20 |     String(String),    // String literals, e.g., "hello"
[INFO] [stdout]    |     ------ ^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `LiteralValue` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 20 -     String(String),    // String literals, e.g., "hello"
[INFO] [stdout] 20 +     String(()),    // String literals, e.g., "hello"
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/parser/stmt.rs:43:11
[INFO] [stdout]    |
[INFO] [stdout] 43 |     Print(Expr),
[INFO] [stdout]    |     ----- ^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Stmt` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 43 -     Print(Expr),
[INFO] [stdout] 43 +     Print(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `condition` and `body` are never read
[INFO] [stdout]   --> src/parser/stmt.rs:69:9
[INFO] [stdout]    |
[INFO] [stdout] 68 |     While {
[INFO] [stdout]    |     ----- fields in this variant
[INFO] [stdout] 69 |         condition: Expr,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 70 |         body: Box<Stmt>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Stmt` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `initializer`, `condition`, `increment`, and `body` are never read
[INFO] [stdout]   --> src/parser/stmt.rs:76:9
[INFO] [stdout]    |
[INFO] [stdout] 75 |     For {
[INFO] [stdout]    |     --- fields in this variant
[INFO] [stdout] 76 |         initializer: Option<Box<Stmt>>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 77 |         condition: Option<Expr>,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 78 |         increment: Option<Expr>,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 79 |         body: Box<Stmt>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Stmt` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name`, `params`, and `body` are never read
[INFO] [stdout]   --> src/parser/stmt.rs:84:9
[INFO] [stdout]    |
[INFO] [stdout] 83 |     Function {
[INFO] [stdout]    |     -------- fields in this variant
[INFO] [stdout] 84 |         name: Token,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 85 |         params: Vec<Token>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 86 |         body: Box<Stmt>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Stmt` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `keyword` and `value` are never read
[INFO] [stdout]   --> src/parser/stmt.rs:91:9
[INFO] [stdout]    |
[INFO] [stdout] 90 |     Return {
[INFO] [stdout]    |     ------ fields in this variant
[INFO] [stdout] 91 |         keyword: Token,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 92 |         value: Option<Expr>,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Stmt` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `keyword` is never read
[INFO] [stdout]   --> src/parser/stmt.rs:97:9
[INFO] [stdout]    |
[INFO] [stdout] 96 |     Break {
[INFO] [stdout]    |     ----- field in this variant
[INFO] [stdout] 97 |         keyword: Token,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Stmt` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `keyword` is never read
[INFO] [stdout]    --> src/parser/stmt.rs:102:9
[INFO] [stdout]     |
[INFO] [stdout] 101 |     Continue {
[INFO] [stdout]     |     -------- field in this variant
[INFO] [stdout] 102 |         keyword: Token,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Stmt` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Assignment` is never constructed
[INFO] [stdout]   --> src/parser/stmt.rs:52:5
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub enum Stmt {
[INFO] [stdout]    |          ---- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 52 |     Assignment {
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Stmt` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `variables` is never read
[INFO] [stdout]   --> src/interpreter/mod.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct Interpreter{
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] 13 |     variables: Vec<Token>,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.50s
[INFO] running `Command { std: "docker" "inspect" "ff455d910eeb75b663201ab0dc702dc79043446c614ddcdc917995022fbd3668", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ff455d910eeb75b663201ab0dc702dc79043446c614ddcdc917995022fbd3668", kill_on_drop: false }`
[INFO] [stdout] ff455d910eeb75b663201ab0dc702dc79043446c614ddcdc917995022fbd3668
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 8d080fafb07e31fa5aa5466a0421aec9686fb627f45ebbcc0b76a5cf1390bf5e
[INFO] running `Command { std: "docker" "start" "-a" "8d080fafb07e31fa5aa5466a0421aec9686fb627f45ebbcc0b76a5cf1390bf5e", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `std::iter::Scan`
[INFO] [stderr]  --> src/scanner/mod.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use std::iter::Scan;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]   --> src/scanner/mod.rs:59:19
[INFO] [stderr]    |
[INFO] [stderr] 59 |                 if(self.peek() == '/'){
[INFO] [stderr]    |                   ^                  ^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 59 -                 if(self.peek() == '/'){
[INFO] [stderr] 59 +                 if self.peek() == '/' {
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/scanner/mod.rs:123:11
[INFO] [stderr]     |
[INFO] [stderr] 123 |         if(self.peek() != '"' && !self.is_eof()){
[INFO] [stderr]     |           ^                                    ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 123 -         if(self.peek() != '"' && !self.is_eof()){
[INFO] [stderr] 123 +         if self.peek() != '"' && !self.is_eof() {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/scanner/mod.rs:124:15
[INFO] [stderr]     |
[INFO] [stderr] 124 |             if(self.peek() == '\n'){self.line += 1;}
[INFO] [stderr]     |               ^                   ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 124 -             if(self.peek() == '\n'){self.line += 1;}
[INFO] [stderr] 124 +             if self.peek() == '\n' {self.line += 1;}
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/scanner/mod.rs:127:11
[INFO] [stderr]     |
[INFO] [stderr] 127 |         if(self.is_eof()){
[INFO] [stderr]     |           ^             ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 127 -         if(self.is_eof()){
[INFO] [stderr] 127 +         if self.is_eof() {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `while` condition
[INFO] [stderr]    --> src/scanner/mod.rs:134:14
[INFO] [stderr]     |
[INFO] [stderr] 134 |         while(self.peek().is_ascii_digit()){
[INFO] [stderr]     |              ^                            ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 134 -         while(self.peek().is_ascii_digit()){
[INFO] [stderr] 134 +         while self.peek().is_ascii_digit() {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/scanner/mod.rs:137:11
[INFO] [stderr]     |
[INFO] [stderr] 137 |         if(self.peek() == '.' && self.peek_next().is_ascii_digit()){
[INFO] [stderr]     |           ^                                                       ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 137 -         if(self.peek() == '.' && self.peek_next().is_ascii_digit()){
[INFO] [stderr] 137 +         if self.peek() == '.' && self.peek_next().is_ascii_digit() {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `while` condition
[INFO] [stderr]    --> src/scanner/mod.rs:139:18
[INFO] [stderr]     |
[INFO] [stderr] 139 |             while(self.peek().is_ascii_digit()){
[INFO] [stderr]     |                  ^                            ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 139 -             while(self.peek().is_ascii_digit()){
[INFO] [stderr] 139 +             while self.peek().is_ascii_digit() {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]   --> src/parser/expression_parser.rs:12:11
[INFO] [stderr]    |
[INFO] [stderr] 12 |         if(self.match_token(&[TokenType::Equal])){
[INFO] [stderr]    |           ^                                     ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 12 -         if(self.match_token(&[TokenType::Equal])){
[INFO] [stderr] 12 +         if self.match_token(&[TokenType::Equal]) {
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]   --> src/parser/mod.rs:22:11
[INFO] [stderr]    |
[INFO] [stderr] 22 |         if(!self.is_eof()) {
[INFO] [stderr]    |           ^              ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 22 -         if(!self.is_eof()) {
[INFO] [stderr] 22 +         if !self.is_eof()  {
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]   --> src/parser/mod.rs:46:15
[INFO] [stderr]    |
[INFO] [stderr] 46 |             if(self.check(t.clone())){
[INFO] [stderr]    |               ^                     ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 46 -             if(self.check(t.clone())){
[INFO] [stderr] 46 +             if self.check(t.clone()) {
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::parser::expr::LiteralValue`
[INFO] [stderr]  --> src/interpreter/block_interpreter.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use crate::parser::expr::LiteralValue;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::cmp::PartialEq`
[INFO] [stderr]  --> src/interpreter/stmt_interpreter.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use std::cmp::PartialEq;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::hint::black_box`
[INFO] [stderr]  --> src/interpreter/stmt_interpreter.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use std::hint::black_box;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `LiteralValue`
[INFO] [stderr]  --> src/interpreter/stmt_interpreter.rs:4:33
[INFO] [stderr]   |
[INFO] [stderr] 4 | use crate::parser::expr::{Expr, LiteralValue};
[INFO] [stderr]   |                                 ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]   --> src/interpreter/stmt_interpreter.rs:12:11
[INFO] [stderr]    |
[INFO] [stderr] 12 |         if(self.is_truthy(&cond)){
[INFO] [stderr]    |           ^                     ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 12 -         if(self.is_truthy(&cond)){
[INFO] [stderr] 12 +         if self.is_truthy(&cond) {
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::collections::HashMap`
[INFO] [stderr]  --> src/interpreter/mod.rs:7:5
[INFO] [stderr]   |
[INFO] [stderr] 7 | use std::collections::HashMap;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]   --> src/interpreter/mod.rs:57:11
[INFO] [stderr]    |
[INFO] [stderr] 57 |         if(self.environment.contains_in_current_scope(&lex)){
[INFO] [stderr]    |           ^                                                ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 57 -         if(self.environment.contains_in_current_scope(&lex)){
[INFO] [stderr] 57 +         if self.environment.contains_in_current_scope(&lex) {
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: variant `Colon` is never constructed
[INFO] [stderr]  --> src/scanner/token_type.rs:5:62
[INFO] [stderr]   |
[INFO] [stderr] 3 | pub enum TokenType{
[INFO] [stderr]   |          --------- variant in this enum
[INFO] [stderr] 4 |     // Single-character tokens
[INFO] [stderr] 5 |     LeftParen, RightParen, LeftBrace, RightBrace, Semicolon, Colon,
[INFO] [stderr]   |                                                              ^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `TokenType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: methods `get_start` and `get_end` are never used
[INFO] [stderr]   --> src/scanner/token.rs:20:12
[INFO] [stderr]    |
[INFO] [stderr] 13 | impl Token {
[INFO] [stderr]    | ---------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 20 |     pub fn get_start(&self) -> usize { self.start }
[INFO] [stderr]    |            ^^^^^^^^^
[INFO] [stderr] 21 |     pub fn get_end(&self) -> usize { self.end }
[INFO] [stderr]    |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `peek_next` is never used
[INFO] [stderr]   --> src/parser/mod.rs:36:12
[INFO] [stderr]    |
[INFO] [stderr] 14 | impl Parser {
[INFO] [stderr]    | ----------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 36 |     pub fn peek_next(&self) -> &Token {
[INFO] [stderr]    |            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]   --> src/parser/expr.rs:20:12
[INFO] [stderr]    |
[INFO] [stderr] 20 |     String(String),    // String literals, e.g., "hello"
[INFO] [stderr]    |     ------ ^^^^^^
[INFO] [stderr]    |     |
[INFO] [stderr]    |     field in this variant
[INFO] [stderr]    |
[INFO] [stderr]    = note: `LiteralValue` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stderr]    |
[INFO] [stderr] 20 -     String(String),    // String literals, e.g., "hello"
[INFO] [stderr] 20 +     String(()),    // String literals, e.g., "hello"
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]   --> src/parser/stmt.rs:43:11
[INFO] [stderr]    |
[INFO] [stderr] 43 |     Print(Expr),
[INFO] [stderr]    |     ----- ^^^^
[INFO] [stderr]    |     |
[INFO] [stderr]    |     field in this variant
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Stmt` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stderr]    |
[INFO] [stderr] 43 -     Print(Expr),
[INFO] [stderr] 43 +     Print(()),
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: fields `condition` and `body` are never read
[INFO] [stderr]   --> src/parser/stmt.rs:69:9
[INFO] [stderr]    |
[INFO] [stderr] 68 |     While {
[INFO] [stderr]    |     ----- fields in this variant
[INFO] [stderr] 69 |         condition: Expr,
[INFO] [stderr]    |         ^^^^^^^^^
[INFO] [stderr] 70 |         body: Box<Stmt>,
[INFO] [stderr]    |         ^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Stmt` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `initializer`, `condition`, `increment`, and `body` are never read
[INFO] [stderr]   --> src/parser/stmt.rs:76:9
[INFO] [stderr]    |
[INFO] [stderr] 75 |     For {
[INFO] [stderr]    |     --- fields in this variant
[INFO] [stderr] 76 |         initializer: Option<Box<Stmt>>,
[INFO] [stderr]    |         ^^^^^^^^^^^
[INFO] [stderr] 77 |         condition: Option<Expr>,
[INFO] [stderr]    |         ^^^^^^^^^
[INFO] [stderr] 78 |         increment: Option<Expr>,
[INFO] [stderr]    |         ^^^^^^^^^
[INFO] [stderr] 79 |         body: Box<Stmt>,
[INFO] [stderr]    |         ^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Stmt` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `name`, `params`, and `body` are never read
[INFO] [stderr]   --> src/parser/stmt.rs:84:9
[INFO] [stderr]    |
[INFO] [stderr] 83 |     Function {
[INFO] [stderr]    |     -------- fields in this variant
[INFO] [stderr] 84 |         name: Token,
[INFO] [stderr]    |         ^^^^
[INFO] [stderr] 85 |         params: Vec<Token>,
[INFO] [stderr]    |         ^^^^^^
[INFO] [stderr] 86 |         body: Box<Stmt>,
[INFO] [stderr]    |         ^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Stmt` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `keyword` and `value` are never read
[INFO] [stderr]   --> src/parser/stmt.rs:91:9
[INFO] [stderr]    |
[INFO] [stderr] 90 |     Return {
[INFO] [stderr]    |     ------ fields in this variant
[INFO] [stderr] 91 |         keyword: Token,
[INFO] [stderr]    |         ^^^^^^^
[INFO] [stderr] 92 |         value: Option<Expr>,
[INFO] [stderr]    |         ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Stmt` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `keyword` is never read
[INFO] [stderr]   --> src/parser/stmt.rs:97:9
[INFO] [stderr]    |
[INFO] [stderr] 96 |     Break {
[INFO] [stderr]    |     ----- field in this variant
[INFO] [stderr] 97 |         keyword: Token,
[INFO] [stderr]    |         ^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Stmt` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `keyword` is never read
[INFO] [stderr]    --> src/parser/stmt.rs:102:9
[INFO] [stderr]     |
[INFO] [stderr] 101 |     Continue {
[INFO] [stderr]     |     -------- field in this variant
[INFO] [stderr] 102 |         keyword: Token,
[INFO] [stderr]     |         ^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `Stmt` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: variant `Assignment` is never constructed
[INFO] [stderr]   --> src/parser/stmt.rs:52:5
[INFO] [stderr]    |
[INFO] [stderr] 38 | pub enum Stmt {
[INFO] [stderr]    |          ---- variant in this enum
[INFO] [stderr] ...
[INFO] [stderr] 52 |     Assignment {
[INFO] [stderr]    |     ^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Stmt` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `variables` is never read
[INFO] [stderr]   --> src/interpreter/mod.rs:13:5
[INFO] [stderr]    |
[INFO] [stderr] 12 | pub struct Interpreter{
[INFO] [stderr]    |            ----------- field in this struct
[INFO] [stderr] 13 |     variables: Vec<Token>,
[INFO] [stderr]    |     ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `dia` (bin "dia" test) generated 31 warnings (run `cargo fix --bin "dia" -p dia --tests` to apply 18 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.02s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/dia-a8b6a7c03100dfc2)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "8d080fafb07e31fa5aa5466a0421aec9686fb627f45ebbcc0b76a5cf1390bf5e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8d080fafb07e31fa5aa5466a0421aec9686fb627f45ebbcc0b76a5cf1390bf5e", kill_on_drop: false }`
[INFO] [stdout] 8d080fafb07e31fa5aa5466a0421aec9686fb627f45ebbcc0b76a5cf1390bf5e
